package com.crazyhat.crazyhat.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.crazyhat.crazyhat.dto.PostDTO;
import com.crazyhat.crazyhat.entity.Post;
import com.crazyhat.crazyhat.pojo.PostPublishWithFile;

/**
 * <p>
 * 动态 服务类
 * </p>
 *
 * @author crazyhat
 * @since 2024-07-05
 */
public interface IPostService extends IService<Post> {

    /**
     * 获取动态列表，分页
     * @param clubId
     * @param pageNum
     * @param pageSize
     * @return
     */
    Page<Post> getPostList(Integer clubId,Integer pageNum, Integer pageSize);

    /**
     * 获取动态列表，分页，包含发布动态的用户信息
     * @param clubId
     * @param pageNum
     * @param pageSize
     * @return
     */
    Page<PostDTO> getPostPlusList(Integer clubId, Integer pageNum, Integer pageSize);

    /**
     * 删除动态
     * @param postId
     * @return
     */
    boolean deletePost(Integer postId);

    /**
     * 获取动态详情
     * @param postId
     * @return
     */
    PostDTO getPostInfo(Integer postId);

    /**
     * 发布评论，支持多文件
     * @param post
     * @return
     */
    Post createPost(PostPublishWithFile post);

    /**
     * 更新、修改动态，支持多文件
     * @param post
     * @return
     */
    Post updatePost(PostPublishWithFile post);

    /**
     * 是否有动态编辑权限
     * @param postId
     * @return
     */
    boolean hasPostEditPower(Integer postId);
}
